//
// Created by fl on 23-9-4.
//

#ifndef SIGMA_GUIDANCE_CONTROLLER_INTERFACE_H
#define SIGMA_GUIDANCE_CONTROLLER_INTERFACE_H

#include <iostream>
#include "mavlink/v2.0/standard/mavlink.h"

struct BlosInfo {
    double vertical;
    double horizontal;
    double ver_rate;
    double hor_rate;
};

class ControllerInterface {
public:
    ControllerInterface() = default;
    virtual ~ControllerInterface() = default;

    // 设置体视线角信息，单位弧度
    virtual bool set_LOS_status(double vertical, double horizontal, double ver_rate, double hor_rate) = 0;

    // 设置空速信息，单位m/s
    virtual bool set_airspeed(double aspd) = 0;

    // 设置姿态角信息
    virtual bool set_att_status(float roll, float pitch, float yaw) = 0;

    // 获取控制指令
    virtual mavlink_set_attitude_target_t get_att_target() const = 0;

    // 计算控制指令
    virtual bool calc_att_thr_cmd(mavlink_set_attitude_target_t &cmd) = 0;

};


#endif //SIGMA_GUIDANCE_CONTROLLER_INTERFACE_H
